<?php

//Para gerar dependencias php de paginas html e arquivos php,modelo da matriz => mat[nome][palavras]
//mat[x][0] e sempre o nome do arquivo

function get_files($tipo,$dir){
	$array = array();
	$d = @dir($dir);
	if($d){
		while (false !== ($entry = $d->read()))
		{
			if($entry!='.' && $entry!='..')
			{
				$entry = $dir.'/'.$entry;
				if(is_dir($entry))
				{
					$files = get_files($tipo,$entry);
					if ($files)
						$array = array_merge($array, $files);
				}
				else if(strpos($entry,".".$tipo)!==false)
					$array[] = $entry;
			}
		}
		$d->close();
	}
	return $array;
}

function gerar_dependencias_htm($diretorio){
	$cont=0;
	$arquivos = get_files("htm",$diretorio);
	//print_r($arquivos);

	for($i=0;$i<count($arquivos);$i++){
		$meu_arq[$cont][0]=$arquivos[$i];

		if(!$arquivo=fopen($arquivos[$i],"r")){
			echo "Erro ao abrir arquivo ".$arquivos[$i]."<br>";
			continue;
		}
		
		$cont2=1;
		while($linha=fgets($arquivo,999)){
			$posicao=strpos($linha,"index.php");
			if($posicao!==false){
				$temp=substr($linha,$posicao);
				if(strpos($temp,"action=")!==false){
					$pattern = "/(.*)(action=)([a-zA-Z]+)(.*)/";
					$temp=preg_replace($pattern,"$3",$temp);
					$meu_arq[$cont][$cont2]=$temp;
					$cont2++;
				}
			}
		}
		fclose($arquivo);
		$cont++;
	}
	if(isset($meu_arq)){
		for($i=0;$i<count($meu_arq);$i++){
			$meu_arq[$i] = array_unique($meu_arq[$i]); 
			echo $meu_arq[$i][0];
			echo "<UL>";
			for($c=1;$c<count($meu_arq[$i]);$c++){
				echo "<LI>".$meu_arq[$i][$c]."</LI>";
			}
			echo "</UL>";
		}
	}
}


function gerar_dependencias_php($diretorio){
	$cont=0;
	$arquivos = get_files("php",$diretorio);
	//print_r($arquivos);

	for($i=0;$i<count($arquivos);$i++){
		$meu_arq[$cont][0]=$arquivos[$i];

		if(!$arquivo=fopen($arquivos[$i],"r")){
			echo "Erro ao abrir arquivo ".$arquivos[$i]."<br>";
			continue;
		}
		
		$cont2=1;
		while($linha=fgets($arquivo,999)){
			$posicao=strpos($linha,"require_once");
			if($posicao!==false){
				$temp=substr($linha,$posicao);
				$temp=explode("\"",$temp);
				if(count($temp)>=2){
					$meu_arq[$cont][$cont2]=$temp[1];
					$cont2++;
				}
			}
			$posicao=strpos($linha,"Template");
			if($posicao!==false){
				if(strpos($linha,".htm")!==false){
					$temp=substr($linha,$posicao);
					$temp=explode("\"",$temp);
					if(count($temp)>=2){
						$meu_arq[$cont][$cont2]=$temp[1];
						$cont2++;
					}
				}
			}
		}
		fclose($arquivo);
		$cont++;
	}
	if(isset($meu_arq)){
		for($i=0;$i<count($meu_arq);$i++){
			$meu_arq[$i] = array_unique($meu_arq[$i]); 
			echo $meu_arq[$i][0];
			echo "<UL>";
			for($c=1;$c<count($meu_arq[$i]);$c++){
				echo "<LI>".$meu_arq[$i][$c]."</LI>";
			}
			echo "</UL>";
		}
	}
}

?>